home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / fpu881 / src6.zoo / ftest.c < prev    next >
C/C++ Source or Header  |  1991-09-24  |  1KB  |  44 lines

  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. main()    {
  5.     static unsigned long min_d[2] =
  6.         { 0x01000000L, 0x00000001L };
  7.     static unsigned long max_d[2] =
  8.         { 0x400fffffL, 0xffffffffL };
  9.     static unsigned long min_f =
  10.           0x00800001L;
  11.     static unsigned long max_f =
  12.           0x3fffffffL;
  13.     double d;
  14.     float  f;
  15.  
  16.     f = (*((float *)&min_f));
  17.     printf("#define FLT_MIN %23.15e\n",(double)f);
  18.  
  19.     f=(float)log10((double)f);
  20.     printf("#define FLT_MIN_10_EXP %d\n",(int)f);
  21.  
  22.     f = (*((float *)&max_f));
  23.     printf("#define FLT_MAX %23.15e\n",(double)f);
  24.  
  25.     f=(float)log10((double)f);
  26.     printf("#define FLT_MAX_10_EXP %d\n",(int)f);
  27.  
  28.     d = (*((double *)&min_d[0]));
  29.     printf("#define DBL_MIN %23.15e\n",d);
  30.  
  31.     d = log10(f);
  32.     printf("#define DBL_MIN_10_EXP -%d\n",(int)d);
  33.        /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
  34.  
  35.     d = *((double *)&max_d[0]);
  36.     printf("#define DBL_MAX %23.15e\n",d);
  37.        /* Maximum int x such that 10**x is a representable double */
  38.  
  39.     d = log10(f);
  40.     printf("#define DBL_MAX_10_EXP %d\n",(int)d);
  41.        /* Maximum double */
  42.  
  43. }
  44.